#include <stdio.h>
#include <stdlib.h>

int** triangle(int n);

int main(int argc, char* argv[])
{
	
	int** r = triangle(atoi(argv[1]));
	
	for(int i=0; i<atoi(argv[1]); i++)
	{
		for(int k = 0; k<i+1; k++)
		{
			printf("%d ", r[i][k]);
		}
		
		printf("\n");
	}
	
	
	for(int i=0; i<6; i++)
	{
		free(r[i]);
	}
	free(r);
	
	return 0;
}

int** triangle(int n)
{
	int** r = malloc(n * sizeof(int*));
	
	for(int i = 0; i < n; i++)
	{
		int* s = malloc((i+1) * sizeof(int));
		
		s[0] = 1;
		
		for(int k = 1; k<i; k++)
		{
			s[k] = r[i-1][k-1] + r[i-1][k];
		}
		
		s[i] = 1;
		
		r[i] = s;
	}
	
	return r;
}

